Disambiguation of USSD codes in text-based applications

ABSTRACT

A system and method for entering USSD codes through an ambiguous text entry interface. The disclosed system may be embedded in mobile devices or other devices having reduced (e.g., 12 key) keypads for text entry. The system receives text entry from users, disambiguates the text entry, and presents the user with descriptors (i.e., representative words, icons, or other visual indicators) that are associated with the entered text and correlated with USSD codes. In response to a user selecting a descriptor, the system retrieves the corresponding USSD code and causes the device to transmit a message to the USSD service. The USSD service receives the message and invokes appropriate processes to respond to the message. In some embodiments, the system presents the list of descriptors representing USSD codes to the user in an order that is related to the probability that the user will select the descriptor.

CROSS-REFERENCE TO RELATED APPLICATION(S)

This application claims the benefit of U.S. Provisional PatentApplication No. 61/187,220 filed Jun. 15, 2009, which is herebyincorporated herein by reference in its entirety. This application isrelated to commonly assigned U.S. Pat. No. 6,307,549, entitled REDUCEDKEYBOARD DISAMBIGUATION SYSTEM which is hereby incorporated herein byreference in its entirety.

BACKGROUND

People increasingly are using mobile devices, such as cell phones, toinput and send text-based communications to one another. For example,people write text messages, instant messages, and emails with thesedevices and use them as forms of inter-personal communication.Unfortunately, the input of text using hand-held and other mobile orpersonal devices is often hampered by the number of keys on a device'skeypad. Keypads on a mobile device typically have fewer keys than thenumber of letters, punctuation symbols, and other characters that needto be entered by a user. As a result, various systems have beendeveloped to simplify the entry of text with reduced keyboards. Forexample, disambiguation systems such as the T9 and XT9 systems by NuanceCommunications, Inc., of Burlington, Mass., delimit text sequencesreceived from reduced keyboards to match the received sequence (orpartial sequence) with words having the same letter sequences. Forexample, when a user enters “7-2-6” a disambiguation system may presentthe words “ram” or “pan.”

While disambiguation systems work particularly well for the entry oftext, users often use the keypads to enter information related to otherapplications. For example, users may use the keypad to enter messages,such as messages transmitted under the Unstructured SupplementaryService Data (USSD) protocol, a standard for transmitting informationover GSM channels. Normally, USSD messages are used as triggers toinvoke independent calling services, such as services that receivequeries for information. For example, upon receiving input from a user,a mobile device may transmit a USSD message to retrieve an accountbalance, a stock quote, a sports score, current weather information, andso on. A server receiving the message may then respond with a menu ofuser-selectable choices. For example, a user may send a USSD message toquery for weather information, and receive a message that causes theuser's mobile device to display a menu of different cities. The user canthen select a city and receive weather information about that city. USSDis often used in such cases because response times are faster andmessages may be longer compared to other messaging protocols (such asSMS).

The entry of USSD codes to send USSD messages, however, can often betedious and time consuming for a user, in part because of how USSD codesare structured. USSD codes generally take on the form of*999*9999*999*#, with a “*” as a separator and a “#” to signify the endof a message. For example, the user requesting weather information maybe required to enter *150*1234*12# or another similar string of numbers.These number strings are not memorable and often cannot be enteredquickly. Additionally, despite the current use of USSD to transmit andreceive information, a user may not be aware of services supported byUSSD or their associated number string.

Also, access to USSD based applications, such as applications thatreceive messages (such as the number string described above) over anetwork and push information (such as the menu described above) to amobile device, are inconvenient or difficult to access with a typicalmobile device. For example, typical mobile devices require users totransmit USSD messages via a SIM toolkit, a text window, or a USSDdialer.

These and other problems exist with respect to utilizing USSD in mobiledevices and other devices, such as devices with reduced keyboards.

BRIEF DESCRIPTION OF THE DRAWINGS

FIG. 1 is a block diagram of a representative mobile device on whichUSSD code disambiguation methods may be implemented.

FIG. 2 is a flow diagram illustrating an example routine for identifyinga descriptor associated with a USSD code.

FIG. 3 is a flow diagram illustrating an example routine for a user totransmit a USSD message.

FIG. 4 is a representative user interface screen displaying a list ofdescriptors that represent USSD codes.

FIG. 5 is a flow diagram illustrating an example routine for setting upa communication channel using a USSD initiation message.

DETAILED DESCRIPTION

A system and method for entering USSD codes through an ambiguous textentry interface is disclosed. The disclosed system may be embedded inmobile devices or other devices having reduced (e.g., 12 key) keypadsfor text entry. The system receives text entry from users, disambiguatesthe text entry, and presents the user with descriptors (i.e.,representative words, icons, or other visual indicators) that areassociated with the entered text and correlated with USSD codes. Forexample, as a user enters the sequence “9-3-2,” the system disambiguatesthe word “weather” from the entered sequence, identifies one or moredescriptors (each representing a USSD code) related to weather, andgenerates and displays a list of descriptors to allow a user to selectone of the USSD codes. The descriptors are typically user-friendlycharacterizations of USSD codes, such as “weather in current location,”“weather in Seattle,” “weather in NYC,” “weather forecast,” an icon of asun, and so on. In response to a user selecting one of the descriptorsin the list, the system retrieves the corresponding USSD code and causesthe device to transmit a message to the USSD service. The USSD servicereceives the message and invokes appropriate processes to respond to themessage with the requested information.

In some embodiments, the system presents the list of descriptorsrepresenting USSD codes to the user in an order that is related to theprobability that the user will select the descriptor. Those descriptorsthat are most likely to be selected are listed first, and thosedescriptors that are least likely to be selected are listed last. As theuser selects various descriptors from multiple lists that are displayedover time (e.g., lists displayed during a single user session or listsdisplayed across multiple sessions), the ordering of the descriptors maybe modified to reflect the personal preferences of the user.

In some embodiments, the system receives an entry of characters thatcorrespond to a portion of a USSD code, interprets the characters as aportion of a USSD code, and presents the user with a list containingdescriptors representing the USSD codes. For example, as a user entersthe sequence “*150*” the system presents the user with a list ofdescriptors representing USSD codes that match the entered sequence. Forexample, the system may display “weather” (e.g., *150*123456#), “stocks”(e.g., *150*234345#), “make payment” (e.g., *150*363534#), and so on.

In some embodiments, the system may employ some or all applicationsavailable on a device as an entry point to identify USSD codes. Forexample, a user may launch a text entry window related to an SMSapplication running on a device, and begin entering text. During textentry, the system may disambiguate the text and display to the user amenu that includes matched words as well as matched USSD descriptors.The system may display an indicator or other symbol next to or with thedescriptor to identify the descriptor as representing a USSD code. Forexample, during the entry of “9-3-2” the system may present a menu thatincludes the following choices: “weather,” “wear,” and “weather (USSD).”The user can then select one of the first two choices in order to add aword to the entered text, or can select the last choice in order to senda USSD code requesting information about the weather.

In some cases, a device may send USSD codes to initiate communicationsusing other communication protocols. For example, to access the Internetover wireless access protocol (WAP) channels, the device may transmit aUSSD code signifying a request to connect to the Internet via a WAPchannel, and begin the WAP-based communication session when the devicereceives a response to the message. In these cases, the system may usethe fast, inexpensive USSD protocol to perform some or all setupprocedures for other communications protocols.

The technology will now be described with respect to various embodimentsand examples. The following description provides specific details for athorough understanding of, and enabling description for, theseembodiments of the technology. However, one skilled in the art willunderstand that the technology may be practiced without many of thesedetails. In some instances, well-known structures and functions have notbeen shown or described in detail to avoid unnecessarily obscuring thedescription of the embodiments of the technology. It is intended thatthe terminology used in the description presented below be interpretedin its broadest reasonable manner, even though it is being used inconjunction with a detailed description of certain specific embodimentsof the technology. Certain terms may even be emphasized herein; however,any terminology intended to be interpreted in any restricted manner willbe overtly and specifically defined as such in this Detailed Descriptionsection. The headings provided herein are for convenience only and donot necessarily affect the scope or meaning of the claimed technology.

Suitable Devices

Referring to FIG. 1, a representative device 100 on which a USSD codedisambiguation system may be implemented is depicted. The device 100 maybe, for example, a mobile or hand-held device such as a cell phone,mobile phone, mobile handset, and so on. The device may also be anyother GSM-supported device having a reduced keyboard, such as anelectronic media player, a digital camera, a personal digital assistant,and so on.

The device 100 may include a transmitter/receiver 104 to send andreceive wireless messages via an antenna 102. The transmitter/receiveris coupled to a microcontroller 106, which consists of anencoder/decoder 108, a processor 112, and RAM (Random Access Memory)114. The encoder/decoder 108 translates signals into meaningful data andprovides decoded data to the processor 112 or encoded data to thetransmitter/receiver 104. The processor is coupled to an input module115, an output module 120, a subscriber identify module (SIM) 125, and adata storage area 130 via a bus 135. The input module 110 receives inputrepresenting text characters from a user and provides the input to theprocessor 112. The input module may be a reduced keypad, i.e., a keypadwherein certain keys in the keypad represent multiple letters such as aphone keypad. With a reduced keypad, depressing each key on the keypadonce results in an ambiguous text string that must be disambiguated. Theinput module may alternatively be a scroll wheel, touch screen or touchpad (implementing, for example, a soft keyboard or hand-writingrecognition region), or any other input mechanism that allows the userto specify a string of one or more characters requiring disambiguation.The output module 120 acts as an interface to provide textual, audio, orvideo information to the user. The output module may comprise a speaker,an LCD display, an OLED display, and so on. The device may also includea SIM 125, which contains user-specific data.

Data and applications software for the device 100 may be stored in adata storage area 130. Specifically, one or more software applicationsare provided to implement the USSD code disambiguation system and methoddescribed herein. The data storage area 130 may include a representativedescriptors database 140 that stores words, icons, or other visualidentifiers that represent USSD codes, and a USSD code database 145 thatstores the number strings and other associated information that compriseUSSD codes. The data storage area 130 also includes an index 150 thatstores a correlation between a received text string, one or moredescriptors that are associated with the received text string, and oneor more USSD codes associated with the descriptors. The correlationbetween the received text string and one or more descriptors (andcorresponding USSD codes) may be manually generated, automaticallygenerated by a service that interprets USSD codes and descriptivematerials about such codes, or by other methods such as those describedin U.S. Patent Publication No. 20070156747 entitled “Mobile DeviceRetrieval and Navigation” (filed 12 Dec. 2006). The index may bestructured so that the descriptors (and corresponding USSD codes) arelisted in an order that is correlated with the likelihood that thedescriptor will be selected by the user. In some embodiments, the indexmay take a similar form to the vocabulary modules described in U.S. Pat.No. 6,307,549, entitled REDUCED KEYBOARD DISAMBIGUATION SYSTEM. Therepresentative descriptor database, the USSD code database, and theindex may be pre-installed on the device 100, may be periodicallyuploaded in part or whole to the device, or may be generated and/orexpanded by the device user. That is, a user may add, modify, or deleteUSSD codes from the database and manually or automatically associateappropriate descriptors to the USSD codes. Allowing the user to modifythe database and index ensures that the descriptors will be those thatthe user finds beneficial when selecting a USSD service.

As will be described in additional detail herein, the input module 115receives a text string from a user. The USSD code disambiguation systemuses the index 150 to identify one or more descriptors from the database140 that are associated with the received text string. For example, ifthe system receives input data related to the text sequence “7-3-7-8,”(“rest”) one or more descriptors containing the word “restaurant” may beidentified in the database 140. Alternatively, the USSD codedisambiguation system uses the index 150 to identify one or more USSDcodes from the database 145 that are correlated with the received textstring. For example, if the system receives the number sequence “*150*,”a number string “*150*134*345#” may be identified in the database 145.Once identified, the system outputs some or all identified descriptorsor descriptors associated with identified USSD codes to the user via theoutput module 120. For example, a list of descriptors may be displayedto the user via a graphical user interface. The system then allows theuser to select a descriptor to begin a USSD session.

FIG. 1 and the discussion herein provide a brief, general description ofa suitable device in which the USSD code disambiguation system can beimplemented. One skilled in the relevant art can readily makemodifications necessary to the blocks of FIG. 1 based on the detaileddescription provided herein. Aspects of the system can be embodied in aspecial purpose computing device or data processor that is specificallyprogrammed, configured, or constructed to perform one or more of thecomputer-executable instructions explained in detail herein. Aspects ofthe system may also be practiced in distributed computing environmentswhere tasks or modules are performed by remote processing devices, whichare linked through a wired or wireless communications network, such as aLocal Area Network (LAN), Wide Area Network (WAN), or the Internet. In adistributed computing environment, program modules may be located inboth local and remote memory storage devices. For example, the index150, descriptors database 140, and USSD codes database 145 may be storedremotely from the device.

USSD Code Disambiguation

Referring to FIG. 2, a flow diagram illustrating an example routine 200for identifying a descriptor associated with a USSD code is described.FIG. 2 and other flow diagrams described herein do not show allfunctions or exchanges of data, but instead they provide anunderstanding of commands and data exchanged under the system. Thoseskilled in the relevant art will recognize that some functions orexchanges of commands and data may be repeated, varied, omitted, orsupplemented, and other aspects not shown may be readily implemented.

At block 210, the system receives text input from a keypad or otherinput module. For example, a user utilizing a text messaging applicationon his/her mobile device may begin to enter a text sequence via thenumeric keypad of the mobile device. The user may enter the textsequence via a text disambiguation application, such as T9, whereambiguous keys are pressed and words are identified based ondisambiguation techniques. Alternatively, the user may enter the textsequence by pressing an individual key multiple times to find a letteror character.

At block 220, the system matches the received text from the user withone or more descriptors stored in a database, such as descriptordatabase 140. The system may match the received text to a singledescriptor, to multiple descriptors, or the system may not retrieve anymatches. For example, the system may match the word “check” with thedescriptors “check my balance,” “check my minutes,” “check the weather,”“check baseball scores,” and so on. In some embodiments, the system mayalso interpret the received text as all or a portion of a USSD code. Forexample, the system may match the character entry “*145*” (whichgenerally relate to payment USSD services) with USSD codes that havedescriptors indicating that they pertain to “pay heat bill,” “pay phonebill,” “transfer funds,” and so on.

The received text that is matched by the system to a descriptor maycorrespond to a phrase, a word, or a character fragment comprising partof a word. For example, the system may receive a sequence of “w-a” andmatch the sequence with representative descriptors related to Washingtonweather (Washington weather), WAP (wap), awake (awake), and so on. Thus,the system may match defined sequences, partial sequences, unambiguoussequences, ambiguous sequences and so on with different and uniquedescriptors.

In some cases, the system may wait to start the matching process untilafter a user has completed his or her text entry. For example, thesystem may receive an entered sequence of “Can I check the weather?”from a user. The system may be configured to start the matching processafter punctuation indicating the end of a sentence has been detected(e.g., a period, question mark, exclamation mark), or the system mayreceive a manual indication from the user to initiate the matchingprocess. In the above example, the system may therefore determine thatthe words “check” and “weather” match a stored descriptor (or a numberof descriptors), and inform the user of the match. That way, the usermay be able to discover USSD codes without knowledge of theircorresponding descriptors. In other cases, rather than wait until aftera user has completed text entry, the system may match received text asthe user enters the text. In these cases, the system provides descriptormatches for each partial and full word as the user enters eachcharacter.

In some cases, the databases that the system accesses to retrievedescriptors or USSD codes may not be stored locally to the device. Inthese cases, the system would make a request to a remote serviceaccessed over a network (such as the Internet) to receive descriptors orUSSD codes that match the received text string. The remote service wouldmatch the received text string to one or more databases and return oneor more descriptors and corresponding USSD codes, or USSD codes andcorresponding descriptors, to the system.

At block 230, the system displays representative descriptors to the userthat match or are related to the received text. For example, the systemmay display a list to a user via the display on the mobile device. Thelist may contain one or more of the identified descriptors that arerelated to the received text. The items in the list may be ordered basedon a variety of different factors, such as based on a determinedlikelihood of accuracy in disambiguation, based on historicalinformation related to prior USSD sessions by the user or by a group ofusers, based on the context in which the text was received such as thesurrounding text entered by the user, based on a frequency of occurrenceof a descriptor when following or preceding a linguistic object orlinguistic objects, based on the proper or common grammar of thesurrounding text, and based on known information about the user such asthe location of the user, the gender of the user, or the variousinterests of the user. Moreover, the system may include in the list avariety of non-descriptor based words or visual indicators. For example,the system may display a list having as a first entry a word thatmatches or is related to the received text, as a second entry adescriptor, and as a third entry an option to view additional choices.The list may be conveyed to the user in a variety of different formats,including via one or more menus, lists, separate or overlaid screens,audio tones or other output, and so on.

In some cases, the system may present the descriptors with symbols orother displayed information that indicates the descriptor isrepresentative of a USSD code. For example, a menu may include a firstentry of “weather” (a non-USSD item) and a second entry of “weather(USSD)” (indicating that the entry is a descriptor). Other examples ofsymbols or other displayed information that indicate that the displayeditem is a descriptor include:

-   -   “check the weather” (implied by the use of the verb “check”)    -   “weather (send message)” (indicated by the use of the term        “message”)    -   “weather        (where the arrow icon indicates that the entry is a descriptor)

Referring to FIG. 3, a flow diagram illustrating an example routine 300for transmitting a message to initiate a USSD service is described. Atblock 310, the system displays a list of descriptors to a user. Forexample, the descriptors may be related to the entered word (such asthree descriptors related to the word “check”). The descriptors may alsobe related to a partial USSD code received in a text entry box orapplication. Each descriptor in the list of descriptors may include avisual identifier that indicates that the descriptor is associated witha USSD service. The list may also include descriptors that are icons,such as icons and other displayable media described in commonly assignedU.S. Publication No. 20080244446, filed on Mar. 29, 2007, entitledDISAMBIGUATION OF ICONS AND OTHER MEDIA IN TEXT-BASED APPLICATIONS. Forexample, the list may include a sun or rain cloud icon to represent aUSSD service associated with weather.

At block 320, the system receives a selection of a descriptor from auser. For example, the system displays a list and receives a selectionof one of the items in the list. The system may enable the user toscroll and select from the list via one or more keys on the keypad, viaother control keys, via soft keys within the displayed list, via audioinput, and so on.

The system may modify or otherwise rearrange or manipulate the list inorder to facilitate a user's selection of an item in the list. In somecases, user displays on mobile devices are small or of low quality, anddisplayed descriptors may be difficult to decipher. The system maytherefore enlarge one or more items in the list for a user. For example,as a user scrolls a list, the system may provide an enlargement of eachitem in the list as the user examines each item. The system may alsoenhance the graphic or quality of an item as the user selects or scrollsto the item in the list. For example, the system may normally provide alow quality display of all the items in the list, and enhance an item inthe list (such as by enhancing the colors, resolution, and so on), whena user moves a cursor to the descriptor. Additionally, the system maydisplay the corresponding USSD code represented by the descriptor whenthe user hovers a cursor over the descriptor or moves to select thedescriptor. Other modifications to the display of lists are of coursepossible.

At block 330, the system retrieves the USSD code and any otherinformation that corresponds to the selected descriptor. The USSD codeand other information contains sufficient information for the system toinitiate a USSD service or request information from a USSD service bytransmitting a USSD message to the service.

At block 340, the system causes the mobile device to transmit a USSDmessage. That is, after a user selects a descriptor from a displayedlist, the system utilizes the USSD code corresponding to the selecteddescriptor to transmit a USSD message to a recipient service, such as aUSSD application in communication with the device over a GSM network. Asdescribed above, the system may transmit the USSD message to obtaininformation, such as weather information, sports information, useraccount information, and so on, or to initiate a session with adifferent application, to be discussed below.

It will be appreciated that the system provides a user with manydifferent ways to search for and retrieve USSD codes and initiateUSSD-based services without forcing the user to spend a significantamount of time searching through lists of USSD codes or relying onmemory or prior knowledge in order to identify the desired USSD codes.

FIG. 4 is a diagram showing an example user interface screen 400, suchas may be present on a mobile device, displaying a list of descriptors.The user interface provides facilities to receive input data, such as aform with field(s) to be filled in, pull-down menus allowing one or moreof several options to be selected, buttons, sliders, hypertext links orother known user interface features for receiving user input. Whilecertain ways of displaying information to users is shown and describedwith respect to the user interface, those skilled in the relevant artwill recognize that various other alternatives may be employed.

User interface screen 400 and other screens may be stored as displaydescriptions, graphical user interfaces, or other methods of depictinginformation on a computer screen (e.g., commands, links, fonts, colors,layout, sizes and relative positions, and the like), where the layoutand information or content to be displayed on the page is stored in adatabase. In general, a “link” refers to any resource locatoridentifying a resource on a network, such as a display descriptionprovided by an organization having a site or node on the network. A“display description,” as generally used herein, refers to any method ofautomatically displaying information on a computer screen in any of theabove-noted formats, as well as other formats, such as email orcharacter/code-based formats, algorithm-based formats (e.g., vectorgenerated), Flash format, or matrix or bit-mapped formats.

User interface screen 400 includes an input entry field 410, such as atext entry field within a text messaging application, instant messagingapplication, email application, main entry screen, or other text-basedapplication of a mobile device. During entry of characters, the systemdisplays a list 420 or other menu when the system matches a user inputsequence of characters with one or more descriptors or USSD codes storedin local or remote databases. The list 420 may be automaticallydisplayed by the system, or may be displayed when requested by the user.For example, in FIG. 4, the text sequence of “2-4-3-2” entered by a usermatches a number of different representations, including a textualrepresentation 422 of “check” (disambiguated using a text disambiguationsystem, such as the T9 system), a first descriptor (weather

) 424, a second descriptor (scores

) 426, and a third descriptor (

) 428. The list 420 may also include number strings and otherrepresentations of USSD codes not shown in the figure.

When a list 420 is displayed, the system allows the user to select oneor more items in the list. The selection may be made by the user bymoving a cursor over an item in the list and pressing an “enter” or“select” key, by selecting a particular function key that is tied to aparticular item in the list (e.g., a first function key tied to thefirst item, a second function key tied to the second item), or by anyother selection method.

Initiation of Other Applications Using USSD Codes

As discussed above, in some cases the system uses a USSD code, such as acode selected using the methods described herein, to initiate a sessionwith a different communication protocol. For example, a user may wish touse a map application (such as Google Maps), and may enter arepresentative word or a number string that causes the user's mobiledevice to send a USSD message indicating the user's desire to launch themap application.

FIG. 5 is a flow diagram illustrating an example routine 500 for settingup a communication channel by selecting a USSD code. At block 510, thedevice, upon receiving input from a user, transmits a USSD message to aserver associated with a desired application. For example, a user entersa character sequence “w-a-p” and selects an item from a list ofdescriptors related to the sequence. Upon receipt of the selection, thedevice transmits a USSD message associated with the selected item. Inthis example, the device transmits a USSD message that indicates adesire to begin a WAP-based session.

At block 520, the device receives a USSD message in response to thetransmitted message. For example, a server associated with a WAPapplication on the device receives the transmitted message and returns aUSSD message to the device, such as a message that acts as a trigger tolaunch the WAP application on the device.

At block 530, the device launches an application based on the receivedUSSD message. For example, the device receives a trigger in the form ofa USSD message and launches the WAP application. The device may thenswitch modes and transmit any further communications over the WAPchannel. Thus, the system is able to utilize the inexpensive and fastUSSD channels when initiating an application on a device.

Conclusion

The above detailed description of embodiments of the technology is notintended to be exhaustive or to limit the technology to the precise formdisclosed above. While specific embodiments of, and examples for, thetechnology are described above for illustrative purposes, variousequivalent modifications are possible within the scope of thetechnology, as those skilled in the relevant art will recognize. Forexample, while processes or blocks are presented in a given order,alternative embodiments may perform routines having steps, or employsystems having blocks, in a different order, and some processes orblocks may be deleted, moved, added, subdivided, combined, and/ormodified. Each of these processes or blocks may be implemented in avariety of different ways. Also, while processes or blocks are at timesshown as being performed in series, these processes or blocks mayinstead be performed in parallel, or may be performed at differenttimes.

While various embodiments are described in terms of the environmentdescribed above, those skilled in the art will appreciate that variouschanges to the facility may be made without departing from the scope ofthe invention. For example, descriptor database 140, USSD code database145, and index 150 are all indicated as being contained in a generaldata store area 130. Those skilled in the art will appreciate that theactual implementation of the data storage area 130 may take a variety offorms, and the term “database” is used herein in the generic sense torefer to any data stored in a structured fashion that allows data to beaccessed, such as by using tables, linked lists, arrays, and so on.

From the foregoing, it will be appreciated that specific embodiments ofthe invention have been described herein for purposes of illustration,but that various modifications may be made without deviating from thespirit and scope of the invention.

I claim:
 1. A method on a mobile device for presenting user-selectableactions to be performed over a USSD channel, the method comprising:receiving a text string from a user via an input component of the mobiledevice; identifying two or more descriptors that relate to the receivedtext string, wherein a descriptor is a user-interpretablecharacterization of a USSD code, and wherein the two or more descriptorsare identified by their association with the received text string in astored index; presenting identified descriptors and a visual cue witheach descriptor via a display component of the mobile device, eachvisual cue indicating that selection of a descriptor initiates acorresponding action performed by the mobile device over the USSDchannel, such that the visual cues distinguish USSD code descriptors;receiving a selection of a descriptor; retrieving the USSD codecharacterized by the selected descriptor; and transmitting the retrievedUSSD code to initiate the corresponding action associated with theselected descriptor.
 2. The method of claim 1, wherein receiving a textstring from a user via an input component of the mobile device includesreceiving the text string via a reduced keyboard of the mobile device.3. The method of claim 1, wherein receiving a text string from the uservia an input component of the mobile device includes receiving the textstring via an instant messaging application or a text messagingapplication running on the mobile device.
 4. The method of claim 1,wherein identifying two or more descriptors that relate to the receivedtext string includes identifying at least one descriptor stored in astorage area on the mobile device.
 5. The method of claim 1, whereinidentifying two or more descriptors that relate to the received textstring includes identifying at least one descriptor stored at a remotelocation from the mobile device.
 6. The method of claim 1, wherein theidentified two or more descriptors are presented in an order that islikely to be selected by the user.
 7. The method of claim 1, whereinpresenting the identified two or more descriptors includes presentinginformation that represents a descriptor associated with a request forinformation.
 8. The method of claim 1, wherein presenting the identifiedtwo or more descriptors includes presenting information that representsa descriptor associated with launching an application on the mobiledevice.
 9. The method of claim 1, wherein presenting the identified twoor more descriptors includes presenting information associated with adescriptor and presenting information not associated with a descriptor.10. The method of claim 1, wherein identifying two or more descriptorsthat relate to the received text string includes identifying at leastone icon representing a USSD code.
 11. The method of claim 1, whereinpresenting identified descriptors includes displaying a list includingdescriptors, ordered based on context for the received text string. 12.The method of claim 11, further comprising displaying suggestions ofdisambiguated words that relate to the received text string, whereinuser selection of a suggested word causes text entry of the selectedword, such that the displayed list includes descriptors and suggestedwords ordered based on context for the received text string.
 13. Asystem for disambiguating user input associated with actions performedby a mobile device over a USSD channel, the system comprising: a memorystoring computer-executable instructions of: an input module, whereinthe input module is configured to receive a character string from a userof the mobile device; an identification module, wherein theidentification module is configured to identify one or more descriptorsassociated in a stored index with the received character string, eachdescriptor characterizing a USSD code in a user-interpretable manner; adisplay module, wherein the display module is configured to displayidentified descriptors and a visual cue with each descriptor, eachvisual cue indicating that selection of a descriptor initiates acorresponding action performed by the mobile device over the USSDchannel, such that the visual cues distinguish USSD code descriptors,and wherein the input and identification modules are further configuredto receive a selection by the user of displayed information reflectingone of the identified descriptors and provide the USSD codecharacterized by the selected descriptor to a service to initiate theaction associated with the USSD code; and a processor for executing thecomputer-executable instructions stored in the memory.
 14. The system ofclaim 13, wherein the input module, identification module, displaymodule, and performance module are defined by instructions stored inmemory of the mobile device.
 15. The system of claim 13, wherein theinput module receives a character string of numbers from a reducedkeyboard of the mobile device, and wherein the identification moduleidentifies one or more USSD codes that include the received string ofnumbers.
 16. The system of claim 13, wherein the input module receives acharacter string of numbers from a reduced keyboard of the mobiledevice, and wherein the identification module identifies one or moreUSSD codes that include letters represented by the received string ofnumbers on the reduced keyboard.
 17. The system of claim 13, wherein theinput module receives a character string of letters from a full keyboardof the mobile device, and wherein the identification module identifiesone or more USSD codes that include the received string of letters. 18.The system of claim 13, wherein the identification module identifies oneor more USSD codes associated with the received character string from adatabase stored in the mobile device.
 19. The system of claim 13,wherein the identification module identifies one or more USSD codesassociated with the received character string from a database storedremotely from the mobile device.
 20. The system of claim 13, wherein thedisplay module displays a menu of user-selectable options eachassociated with the identified one or more descriptors.
 21. The systemof claim 13, wherein the displayed one or more descriptors are orderedbased on a determined likelihood of selection by the user of the mobiledevice.
 22. A non-transitory computer-readable medium whose contents,when executed by a processor of a mobile device, cause the mobile deviceto perform a method for requesting information over a USSD channel, themethod comprising: receiving a sequence of characters via a keyboard ofthe mobile device; identifying two or more information request optionsthat are associated in a stored index with the received sequence ofcharacters, wherein an information request option is auser-interpretable characterization of a USSD code; displayingidentified information request options and a visual cue with eachdisplayed information request option via a display component of themobile device, each visual cue indicating that selection of aninformation request option initiates an associated action performed bythe mobile device over the USSD channel, such that the visual cuesdistinguish USSD code information request options; receiving a selectionof one of the identified information request options displayed with avisual cue; transmitting the USSD message characterized by the selectedinformation request option; and presenting content received in responseto the transmitted USSD message.
 23. The non-transitorycomputer-readable medium of claim 22, wherein the sequence of charactersincludes a sequence of numbers, and wherein identifying two or moreinformation request options associated with the received sequence ofcharacters includes identifying two or more USSD codes that include thesequence of numbers.
 24. The non-transitory computer-readable medium ofclaim 22, wherein the sequence of characters includes a sequence ofletters, and wherein identifying two or more information request optionsassociated with the received sequence of characters includes identifyingtwo or more USSD codes that include the sequence of letters.